1. Field of the Invention
This invention relates to grid computing and more particularly relates to on-demand control of performance resources on a grid computing system.
2. Description of the Related Art
Grid computing is a relatively new technology in the computing industry. Many current grid computing systems are designed to allow multiple interconnected computers, or nodes, to work together on large grid applications, such as computational problems, that would be impossible to do on a single machine. In order to feasibly manage such overwhelming amounts of computational processing, the computational problem may be divided into several smaller, more manageable jobs. This type of shared processing of grid applications is possible in part because of the enforced or incidental idle processor time of many personal and business computers.
Additionally, grid computing systems may allow for shared storage across a plurality of nodes within the system. In this way, data may be stored remotely on the system, in the form of a backup, for example, and allow large amounts of data to be virtually stored by a single node.
One of the major issues in designing and implementing grid computing systems is resource management. Managing the performance resources available to the grid computing system is fundamental to the efficacy of the system. For example, with various disparate storage, memory, and processing resources available from the many nodes in a grid computing system, somehow these performance resources must be utilized within the grid system in an organized and productive manner.
Some grid computing systems are built exclusively for grid computing operations. In this scenario, all of the performance resources of all of the connected nodes are dedicated to the grid computing system. Although the grid system operation must be assigned out to specific node resources, there is very little need, if any, for such a grid computing system to dynamically manage the allocated performance resources because the amount of resources available to the grid is relatively static. Except for the occasional downtime of a failed device, the performance resources within this type of grid computing system remain dedicated to the grid system.
Other grid computing systems rely on nodes that may be available to the grid computing system infrequently or less than on a dedicated basis. For example, some grid computing systems contain software on each node that performs calculations on data received through the grid computing system. Input data may be transferred to the node during a minimal period of connectivity to the grid computing system. The calculations are performed during system idle time of the node, such as during the operation of a screensaver application. The computational results are then transferred back to the grid server during a subsequent period of connectivity to the grid computing system. Alternately, the calculation may be performed as a background application using processing cycles not utilized for local applications on the node.
However, for grid applications that require substantial connectivity to the grid system for large amounts of data transfer, such as data backup applications, the availability (i.e. accessibility, capacity, etc.) of performance resources on a particular node may become more determinative of the efficacy of the grid computing system. It follows that management of the available performance resources is also more important to the operation of the grid computing system. Unfortunately, conventional grid computing systems are generally inadequate to manage the dynamic availability of performance resources made available to the grid computing system on a non-dedicated basis.
Consequently, a need exists for an apparatus, system, and method that facilitate favorable on-demand control of performance resources on a grid computing system. Beneficially, such an apparatus, system, and method would overcome many of the current performance limitations on non-dedicated grid computing systems.